package com.stu.config;

import lombok.Data;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author study
 * @version 1.0
 * @date 2020/8/18 22:33Z
 */
@Data
@Component
@ConfigurationProperties(prefix = "my.thread")
public class ThreadPoolConfigProperties implements InitializingBean {
    private Integer coreSize;
    private Integer maxSize;
    private Integer keepAliveTime;

    //TODO InitializingBean 介绍

    /**
     * Spring源码分析P135
     * 定制初始化方法，除了使用熟知的配置 init-method 外，还有自定义的bean 实现InitializingBean 接口，
     * init-Method和 InitializingBean的 afterPropertiesSet 都是在初始化bean时执行，执行顺序是 afterPropertiesSet 先执行， 而，init-Methos后执行。
     */
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("初始化完成" + coreSize);

    }
}

